#include<iostream>
#include<string>

using namespace std;

class person
{
public:
	person()
	{
		cout << "person()" << endl;
	}

	person(person& p)
	{
		cout << "person(person& p)" << endl;
	}

	~person()
	{
		cout << "~person" << endl;
	}
protected:
	string name;
	int age;
	string ID;
	int sex;
};

class student : virtual public person
{
public:
	student()
	{
		cout << "student()" << endl;
	}

	student(student& s)
	{
		person::person(s);
		cout << "student(student& s)"<<endl;
	}

	~student()
	{
		cout << "~student()" << endl;
	}
protected:
	string sn;
	string major;
};

int main()
{
	student s1;
	return 0;
}